package entidades;

import java.util.ArrayList;

import util.GCOBUtil;

public class CopyOfChamadas {

	private int qtdChamadas = 10;


	private String codigoRegistro = "1";// 2
	private String codigoNatureza = "111";
	private String codigoEOTFilialPrestadoraOrigem = "999";
	private String codigoEOTFilialPrestadoraDestino = "411";
	private String assinanteA = "1199999999           ";// 21 caracters
	private String cnlOrigem = "00000";
	private String csp = "11";
	private String codigoPais = "000";
	private String assinanteB = "1199999999           ";// 21 caracters
	private String cnlDestino = "00000";
	private String dataChamada = GCOBUtil.data("ddMMyyyy");
	private String horaChamada = GCOBUtil.data("Hmmss");
	private String duracaoReal = "001000";// "HHMMSS";
	private String duracaoTarifada = "00100";
	private String grupoHorario = "1";
	private String degrau = "01";
	private String codigoNacionalAreaVisitante = "77";
	private String valor = "22222.11111";
	private String codigoRefaturamento = "  ";// 02 caracteres RC, RD, RR
	private String identificadorRegistroLote = "0000001";
	private String filler = "                        ";// 24

	private ArrayList<String> chamadas = new ArrayList<String>();
	private int valorTotal = 0;

	// ------------------- CONSTRUTOR
	public CopyOfChamadas() {
		// TODO Auto-generated constructor stub
	}

	// ---------------- Metodos
	public StringBuffer getLinhas() {
		StringBuffer retorno = new StringBuffer();
		gerachamadas();
		for (int i = 0; i < qtdChamadas; i++) {
			retorno.append(chamadas.get(i));
			retorno.append("\n");
		}

		return retorno;
	}

	public StringBuffer getLinha() {
		StringBuffer retorno = new StringBuffer();
		retorno.append(codigoRegistro + codigoNatureza
				+ codigoEOTFilialPrestadoraOrigem
				+ codigoEOTFilialPrestadoraDestino + assinanteA + cnlOrigem
				+ csp + codigoPais + assinanteB + cnlDestino + dataChamada
				+ horaChamada + duracaoReal + duracaoTarifada + grupoHorario
				+ degrau + codigoNacionalAreaVisitante + valor
				+ codigoRefaturamento + identificadorRegistroLote + filler);
		return retorno;
	}

	public ArrayList gerachamadas() {

		for (int i = 0; i < qtdChamadas; i++) {

			// chamadas.add(getLinha().toString());
			setIdentificadorRegistroLote(String.valueOf(i + 1));
			valorTotal = valorTotal + Integer.parseInt(valor);
			chamadas.add(codigoRegistro + codigoNatureza
					+ codigoEOTFilialPrestadoraOrigem
					+ codigoEOTFilialPrestadoraDestino + assinanteA + cnlOrigem
					+ csp + codigoPais + assinanteB + cnlDestino + dataChamada
					+ horaChamada + duracaoReal + duracaoTarifada
					+ grupoHorario + degrau + codigoNacionalAreaVisitante
					+ valor + codigoRefaturamento + identificadorRegistroLote
					+ filler);
		}
		return chamadas;
	}

	// ---------------- Metodos
	public int getQtdChamadas() {
		return qtdChamadas;
	}
	
	public void setQtdChamadas(int qtdChamadas) {
		this.qtdChamadas = qtdChamadas;
	}

	public String getCodigoRegistro() {
		return codigoRegistro;
	}

	public void setCodigoRegistro(String codigoRegistro) {
		this.codigoRegistro = codigoRegistro;
	}

	public String getCodigoNatureza() {
		return codigoNatureza;
	}

	public void setCodigoNatureza(String codigoNatureza) {
		this.codigoNatureza = codigoNatureza;
	}

	public String getCodigoEOTFilialPrestadoraOrigem() {
		return codigoEOTFilialPrestadoraOrigem;
	}

	public void setCodigoEOTFilialPrestadoraOrigem(
			String codigoEOTFilialPrestadoraOrigem) {
		this.codigoEOTFilialPrestadoraOrigem = codigoEOTFilialPrestadoraOrigem;
	}

	public String getCodigoEOTFilialPrestadoraDestino() {
		return codigoEOTFilialPrestadoraDestino;
	}

	public void setCodigoEOTFilialPrestadoraDestino(
			String codigoEOTFilialPrestadoraDestino) {
		this.codigoEOTFilialPrestadoraDestino = codigoEOTFilialPrestadoraDestino;
	}

	public String getAssinanteA() {
		return assinanteA;
	}

	public void setAssinanteA(String assinanteA) {
		this.assinanteA = GCOBUtil.alinharEsquerda(assinanteA, " ", 21);
	}

	public String getCnlOrigem() {
		return cnlOrigem;
	}

	public void setCnlOrigem(String cnlOrigem) {
		this.cnlOrigem = cnlOrigem;
	}

	public String getCsp() {
		return csp;
	}

	public void setCsp(String csp) {
		this.csp = csp;
	}

	public String getCodigoPais() {
		return codigoPais;
	}

	public void setCodigoPais(String codigoPais) {
		this.codigoPais = codigoPais;
	}

	public String getAssinanteB() {
		return assinanteB;
	}

	public void setAssinanteB(String assinanteB) {
		this.assinanteB = GCOBUtil.alinharEsquerda(assinanteB, " ", 21);
	}

	public String getCnlDestino() {
		return cnlDestino;
	}

	public void setCnlDestino(String cnlDestino) {
		this.cnlDestino = cnlDestino;
	}

	public String getDataChamada() {
		return dataChamada;
	}

	public void setDataChamada(String dataChamada) {
		this.dataChamada = dataChamada;
	}

	public String getHoraChamada() {
		return horaChamada;
	}

	public void setHoraChamada(String horaChamada) {
		this.horaChamada = horaChamada;
	}

	public String getDuracaoReal() {
		return duracaoReal;
	}

	public void setDuracaoReal(String duracaoReal) {
		this.duracaoReal = duracaoReal;
	}

	public String getDuracaoTarifada() {
		return duracaoTarifada;
	}

	public void setDuracaoTarifada(String duracaoTarifada) {
		this.duracaoTarifada = duracaoTarifada;
	}

	public String getGrupoHorario() {
		return grupoHorario;
	}

	public void setGrupoHorario(String grupoHorario) {
		this.grupoHorario = grupoHorario;
	}

	public String getDegrau() {
		return degrau;
	}

	public void setDegrau(String degrau) {
		this.degrau = degrau;
	}

	public String getCodigoNacionalAreaVisitante() {
		return codigoNacionalAreaVisitante;
	}

	public void setCodigoNacionalAreaVisitante(
			String codigoNacionalAreaVisitante) {
		this.codigoNacionalAreaVisitante = codigoNacionalAreaVisitante;
	}

	public String getValor() {
		return valor;
	}

	public void setValor(String valor) {
		// *******************
		this.valor = valor;
	}

	public void setValor(double valor) {
		this.valor = GCOBUtil.alinharDireita(GCOBUtil
				.converterDoubleString(valor), "0", 10);
	}

	public String getCodigoRefaturamento() {
		return codigoRefaturamento;
	}

	public void setCodigoRefaturamento(String codigoRefaturamento) {
		this.codigoRefaturamento = codigoRefaturamento;
	}

	public String getIdentificadorRegistroLote() {
		return identificadorRegistroLote;
	}

	public void setIdentificadorRegistroLote(String identificadorRegistroLote) {
		this.identificadorRegistroLote = GCOBUtil.alinharDireita(
				identificadorRegistroLote, "0", 7);
	}

	public String getFiller() {
		return filler;
	}

	public void setFiller(String filler) {
		this.filler = filler;
	}

	public int getValorTotal() {
		return this.valorTotal;
	}
}
